package to.pm.entity.catalogo;

import java.util.Collection;

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;


@Entity
public class CategoriaConsumabili extends Categoria {

    @ManyToOne
    private CategoriaConsumabili sovraCategoria;

    @OneToMany(mappedBy = "categoriaConsumabili")
    private Collection<ProdottoConsumabile> prodotti;

    @Override
    public Collection<ProdottoConsumabile> getProdotti () {
        return getProdottiConsumabili();
    }

    @Override
    @SuppressWarnings("unchecked")
    public void setProdotti(Collection<? extends Prodotto> prodotti) {
        setProdottiConsumabili((Collection<ProdottoConsumabile>)prodotti);
    }

    public Collection<ProdottoConsumabile> getProdottiConsumabili () {
        return prodotti;
    }


    public void setProdottiConsumabili(Collection<ProdottoConsumabile> prodotti) {
        this.prodotti = prodotti;
    }


    @Override
    public boolean isConsumabile () {
        return true;
    }

    @Override
    public void setSovraCategoria (Categoria cat) {
        setSovraCategoriaConsumabili((CategoriaConsumabili)cat);
    }

    @Override
    public Categoria getSovraCategoria () {
        return getSovraCategoriaConsumabili();
    }


    public CategoriaConsumabili getSovraCategoriaConsumabili() {
        return sovraCategoria;
    }

    public void setSovraCategoriaConsumabili(CategoriaConsumabili sovraCategoriaConsumabili) {
        this.sovraCategoria = sovraCategoriaConsumabili;
    }

    @Override
    public String toString () {
        return "{CC}"+super.toString();
    }
}
